#ifndef NANE_CONSTANTBUFFER_H
#   define  NANE_CONSTANTBUFFER_H

#   include "nane/core/SubSystemProduct.h"

namespace nane
{
    class ConstantBuffer
        : public SubSystemProduct
    {
        friend class RenderSystem;
        class Implementation;

    public:
        ConstantBuffer( const NullType& = NullPtr );
        ConstantBuffer( Implementation* _impl );
        ConstantBuffer( const ConstantBuffer& _other );

    public:
        void SetConstant( uint32 _slot, float _cx, float _cy = 0.0f, float _cz = 0.0f, float _cw = 0.0f );

    private:
        Implementation* m;
    };        
}   // namespace nane

#endif	// NANE_CONSTANTBUFFER_H
